www.gusucode.com > seacms 海洋PHP影视视频网站建站系统 v6.61PHP源码程序 > seacms 海洋PHP影视视频网站建站系统 v6.61/海洋cms V6.61/海洋cms V6.61/upload/include/cron.func.php
<?php if(!defined('sea_INC')) { exit("Request Error!"); } function cronnextrun($cron,$isRun=true) { global $dsql,$cfg_cli_time, $timestamp; if(empty($cron)) return FALSE; list($yearnow, $monthnow, $daynow, $weekdaynow, $hournow, $minutenow) = explode('-', gmdate('Y-m-d-w-H-i', $timestamp + $cfg_cli_time * 3600)); if($cron['weekday'] == -1) { if($cron['day'] == -1) { $firstday = $daynow; $secondday = $daynow + 1; } else { $firstday = $cron['day']; $secondday = $cron['day'] + gmdate('t', $timestamp + $cfg_cli_time * 3600); } } else { $firstday = $daynow + ($cron['weekday'] - $weekdaynow); $secondday = $firstday + 7; } if($firstday < $daynow) { $firstday = $secondday; } if($firstday == $daynow) { $todaytime = crontodaynextrun($cron); if($todaytime['hour'] == -1 && $todaytime['minute'] == -1) { $cron['day'] = $secondday; } else { $cron['day'] = $firstday; $cron['hour']=$todaytime['hour']; $cron['minute']=$todaytime['minute']; } } else { $cron['day'] = $firstday; } $nextrun = @gmmktime($cron['hour'], $cron['minute'] > 0 ? $cron['minute'] : 0, 0, $monthnow, $cron['day'], $yearnow) - $cfg_cli_time * 3600; // echo $nextrun;die(); $cronid = $cron['cronid']; $availableadd = $nextrun >= $timestamp ? '' : ', available=\'0\''; $dsql->ExecuteNoneQuery("UPDATE sea_crons SET ".($isRun?"lastrun='$timestamp',":"")." nextrun='$nextrun' $availableadd WHERE cronid='$cronid'"); return TRUE; } function crontodaynextrun($cron, $hour = -2, $minute = -2) { global $timestamp, $cfg_cli_time; $hour = $hour == -2 ? gmdate('H', $timestamp + $cfg_cli_time * 3600) : $hour; $minute = $minute == -2 ? gmdate('i', $timestamp + $cfg_cli_time * 3600) : $minute; if(strpos($cron['minute'],',')!==FALSE) $cron['minute']=explode(',', $cron['minute']); $nexttime = array(); if($cron['hour'] == -1) { $nexttime['hour'] = $hour; if(($nextminute = cronnextminute($cron['minute'], $minute)) === false) { ++$nexttime['hour']; if(is_array($cron['minute']))$nextminute = $cron['minute'][0]; else $nextminute = $cron['minute']; } $nexttime['minute'] = $nextminute; } elseif($cron['hour'] != -1 ) { $nextminute = cronnextminute($cron['minute'], $minute); if($cron['hour'] < $hour||($cron['hour'] == $hour && $nextminute === false)) { $nexttime['hour'] = $nexttime['minute'] = -1; } else{ $nexttime['hour']=$cron['hour']; if(is_array($cron['minute']))$nexttime['minute'] = $cron['minute'][0]; else $nexttime['minute'] = $cron['minute']; } } return $nexttime; } function cronnextminute($nextminutes, $minutenow) { if(is_array($nextminutes)){ foreach($nextminutes as $nextminute) { if($nextminute > $minutenow) { return $nextminute; } } }else{ if($nextminutes > $minutenow) { return $nextminutes; } } return false; } ?>